// 定义了一个Foo构造函数，
function Foo() {
    getName = function () { console.log(1);}; //全局变量会覆盖外层的getName函数表达式
    return this;
}
// 静态属性存储了一个匿名函数
Foo.getName = function () { console.log (2);};
// 在原型上创建了一个getName的匿名函数
Foo.prototype.getName = function () { console.log (3);};
// 函数表达式创建了一个getName的函数
var getName = function () { console.log (4);};
// 声明了一个getName函数
function getName() { console.log (5);}  //会提升到上面，这个方法会被覆盖
 
//请写出以下输出结果：
Foo.getName(); //2
getName();  // 因为函数提升，所以 4
Foo().getName(); //1
getName();
new Foo.getName();
new Foo().getName();
new new Foo().getName();